//package com.zking.shiro.aliyun;
//
//import com.aliyuncs.DefaultAcsClient;
//import com.aliyuncs.IAcsClient;
//import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
//import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
//import com.aliyuncs.exceptions.ClientException;
//import com.aliyuncs.profile.DefaultProfile;
//import com.aliyuncs.profile.IClientProfile;
//
//import java.util.HashMap;
//import java.util.Map;
//
//public class AliyunSmsUtil {
//    /**
//     * 产品名称:云通信短信API产品（不用更换）
//     */
//    private static final String PRODUCT = "Dysmsapi";
//
//    /**
//     * 产品域名（不用更换）
//     */
//    private static final String DOMAIN = "dysmsapi.aliyuncs.com";
//
//    /**
//     * todo 开发者自己的AK(在阿里云访问控制台寻找)
//     */
//    private static final String ACCESS_KEY_ID = "XXXXXX";
//
//    /**
//     * todo accessKeySecret(在阿里云访问控制台寻找)
//     */
//    private static final String ACCESS_KEY_SECRET = "XXXXXX";
//
//    /**
//     * todo 必填:短信签名(签名管理中的签名名称)
//     */
//    private static final String SIGN_NAME = "XXXXX";
//
//    /**
//     * todo 必填:REGION_ID（不用更换）
//     */
//    private static final String REGION_ID = "cn-hangzhou";
//
//    /**
//     * todo 必填:模板CODE（模板管理中的模板CODE）
//     */
//    public static final String LOGIN_TEMPLATE_CODE = "XXXX";
//
//    /**
//     * 发送方法
//     *
//     * @param phone         电话号码
//     * @param templateCode  模板编号
//     * @param templateParam 模板中的参数
//     * @return 返回值
//     * @throws ClientException 异常
//     */
//    public static SendSmsResponse sendSms(String phone, String templateCode, String templateParam) throws ClientException {
//
//        //可自助调整超时时间
//        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
//        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//
//        //初始化acsClient,暂不支持region化
//        IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
//        DefaultProfile.addEndpoint(REGION_ID, REGION_ID, PRODUCT, DOMAIN);
//        IAcsClient acsClient = new DefaultAcsClient(profile);
//
//        SendSmsRequest request = new SendSmsRequest();
//        request.setPhoneNumbers(phone);
//        request.setSignName(SIGN_NAME); // 短信签名
//        request.setTemplateCode(templateCode);
//        request.setTemplateParam(templateParam);
//
//        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
//        request.setOutId("10000");
//
//        //hint 此处可能会抛出异常，注意catch
//        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
//        return sendSmsResponse;
//    }
//
//    public static void main(String[] args) throws ClientException, InterruptedException {
//
//        Map<String, String> paramMap = new HashMap<String, String>();
//        //map.put("name",name);
//        String code = createRandomVcode();
//        paramMap.put("code", code);
//        String templateParam = alibaba.fastjson.JSONObject.toJSONString(paramMap);
//
//        String phones = "13343810716";
//        SendSmsResponse response = sendSms(phones, LOGIN_TEMPLATE_CODE, templateParam);
//        System.out.println("短信接口返回的数据----------------");
//        System.out.println("Code=" + response.getCode());
//        System.out.println("Message=" + response.getMessage());
//        System.out.println("RequestId=" + response.getRequestId());
//        System.out.println("BizId=" + response.getBizId());
//    }
//
//    /**
//     * 生成六位随机数
//     *
//     * @return
//     */
//    public static String createRandomVcode() {
//        //验证码
//        StringBuilder vcode = new StringBuilder();
//        for (int i = 0; i < 6; i++) {
//            vcode.append((int) (Math.random() * 9));
//        }
//        return vcode.toString();
//    }
//}